Programming paradigms built upon such concepts as functions and function calls, subroutines and subroutines and subroutine calls, global variables and local variables, and object orientation are characterized by such features as “reusable code” and “inheritance.”
In older languages, such as FORTRAN and BASIC, reusability and inheritance were obtained through crafting of functions, routines, and subroutines that were called through global variables in a main program. Subsequently, this has evolved into object oriented programming in such languages as C++ and Java and is built upon a programming paradigm foundation of objects, functions, and class data types. An “object” is a variable that has “functions” associated with it. These functions are called “member functions.” A “class” is a data type whose variable are “objects.” The object's class, that is, the type of the object, determines which member functions the object has.
In a modern, object oriented programming language, such as C++ or Java, the mechanism to create objects and member functions is a “class.” Classes can support “information hiding” which is a critical part of modern program design. In “information hiding”, one programming team may design, develop, and implement a class, function, routine, or subroutine while another programming team may use the new class, function, routine, or subroutine. It is not necessary for the programmers who use the class, function, routine, or subroutine to know how it is implemented.
To be noted is that “object oriented programming” uses the terms “public” and “private” while the older techniques use the terms “global” and “local” for the domain of variables.
One aspect of both paradigms is “code reusability,” whether implicitly by the subroutine or function calls of FORTRAN and the like or explicitly by declaring variables in C++ or JAVA.
There is an especially strong need for a development environment, including development tools, and either functions, routines, and subroutines with global and local variables, or base classes, to allow end users to develop business applications customized to their needs and derived from the supplied functions, routines, and subroutines with global and local variables, or base classes.